CodeIgniter এ বিল্ট-ইন Email Class ব্যবহার করে সহজেই HTML Email পাঠানো এবং এর সাথে অ্যাটাচমেন্ট যোগ করা যায়। নিচে ধাপে ধাপে HTML Email পাঠানোর প্রক্রিয়া এবং অ্যাটাচমেন্ট ব্যবহারের পদ্ধতি ব্যাখ্যা করা হয়েছে।
CodeIgniter-এ ইমেইল পাঠানোর জন্য SMTP বা ডিফল্ট PHP মেইল ফাংশন ব্যবহার করা যায়। SMTP সেটআপ করলে ইমেইল পাঠানো আরও নির্ভরযোগ্য হয়।
app/Config/Email.php
ফাইলটি খুলুন এবং নিচের মতো কনফিগার করুন:
<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class Email extends BaseConfig
{
public $fromEmail = 'your_email@example.com'; // প্রেরকের ইমেইল
public $fromName = 'Your Name'; // প্রেরকের নাম
public $SMTPHost = 'smtp.example.com'; // SMTP সার্ভার
public $SMTPUser = 'your_email@example.com'; // SMTP ইউজারনেম
public $SMTPPass = 'your_password'; // SMTP পাসওয়ার্ড
public $SMTPPort = 587; // SMTP পোর্ট (587 সাধারণত TLS এর জন্য)
public $mailType = 'html'; // ইমেইল ফরম্যাট (html বা text)
}
কোডের মাধ্যমে ইমেইল কনফিগার করতে পারেন:
$email = \Config\Services::email();
$config = [
'protocol' => 'smtp',
'SMTPHost' => 'smtp.example.com',
'SMTPUser' => 'your_email@example.com',
'SMTPPass' => 'your_password',
'SMTPPort' => 587,
'mailType' => 'html',
];
$email->initialize($config);
app/Views/email_template.php
নামে একটি HTML টেমপ্লেট তৈরি করুন:
<!DOCTYPE html>
<html>
<head>
<title>Welcome Email</title>
</head>
<body>
<h1>Hello, <?= $name ?>!</h1>
<p>Welcome to our service. We're glad to have you.</p>
</body>
</html>
app/Controllers/EmailController.php
ফাইল তৈরি করুন এবং নিচের কোড যোগ করুন:
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class EmailController extends Controller
{
public function sendEmail()
{
$email = \Config\Services::email();
// কনফিগারেশন সেটআপ
$email->setFrom('your_email@example.com', 'Your Name');
$email->setTo('recipient@example.com');
$email->setSubject('Welcome Email');
// HTML ভিউ লোড এবং সেট
$data = ['name' => 'John Doe'];
$message = view('email_template', $data);
$email->setMessage($message);
// ইমেইল পাঠানোর চেষ্টা
if ($email->send()) {
return "Email Sent Successfully!";
} else {
return $email->printDebugger(['headers', 'subject', 'body']);
}
}
}
CodeIgniter এর attach
মেথড ব্যবহার করে ইমেইলে ফাইল অ্যাটাচ করতে পারেন।
$email->attach(WRITEPATH . 'uploads/sample.pdf'); // ফাইল অ্যাটাচ করা
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
class EmailController extends Controller
{
public function sendEmailWithAttachment()
{
$email = \Config\Services::email();
// কনফিগারেশন সেটআপ
$email->setFrom('your_email@example.com', 'Your Name');
$email->setTo('recipient@example.com');
$email->setSubject('Document Attached');
$email->setMessage('<p>Please find the attached document.</p>');
// অ্যাটাচমেন্ট যোগ
$email->attach(WRITEPATH . 'uploads/sample.pdf');
// ইমেইল পাঠানোর চেষ্টা
if ($email->send()) {
return "Email with Attachment Sent Successfully!";
} else {
return $email->printDebugger(['headers', 'subject', 'body']);
}
}
}
সমাধান: PHP এর php.ini
ফাইলে openssl
এক্সটেনশন সক্রিয় করুন:
extension=openssl
CodeIgniter-এ HTML Email এবং Attachments পাঠানো খুবই সহজ এবং কার্যকর। এটি ইউজারের সাথে যোগাযোগ স্থাপন, ফাইল শেয়ারিং, বা নোটিফিকেশন পাঠানোর জন্য একটি শক্তিশালী সমাধান প্রদান করে। SMTP কনফিগারেশন এবং কাস্টমাইজড টেমপ্লেটের মাধ্যমে ইমেইল ফিচারকে আরও কার্যকরভাবে ব্যবহার করা যায়।
Read more